home *** CD-ROM | disk | FTP | other *** search
-
- ===============================================
-
- @(#) OKAMI SHELL VERSION 1.3 - SYSTEM-FUNKTION
-
- ===============================================
- Stand: 29.6.91
-
-
- Um die Okami-Shell von eigenen Programmen aus aufrufen zu können, gibt es
- die Funktion system. Beispiel:
-
- DiskDir()
- {
- extern int system();
-
- system("ls a:\*");
- system("df a:");
- }
-
- Durch Aufruf der Funktion DiskDir werden Inhalt und freier Speicherplatz von
- Laufwerk a: ausgegeben. Dies wird erreicht durch Aufruf der Shell mit den
- Kommandos `ls a:\*' und `df a:'.
-
- Um die system-Funktion benutzen zu können, muß die Datei system.c einge-
- bunden werden. Dazu gibt es folgende Möglichkeiten:
- 1. #include "system.c"
- 2. Kompilieren der Datei system.c und Mit-Linken der Objektdatei system.o.
- 3. Kompilieren der Datei system.c und Einbinden der Objektdatei system.o
- in eine Library.
-
- Der Aufruf der Shell erfolgt über den _shell_p-Zeiger. Daher sollte auch
- jede andere system-Funktion aus diversen Compiler-Libraries, die diesen
- Zeiger benutzt, funktionieren.
- Das bedeutet aber auch, daß man auf diese Weise die Shell nur aufrufen kann,
- wenn sie sich bereits im Speicher befindet, wenn also das Programm, das
- system() benutzt, von der Shell gestartet wurde. In anderen Fällen kann
- die Shell mit der Gemdos-Funktion Pexec() gestartet werden.
-
- Ein Beispielprogramm ist in der Datei system.c enthalten. Um es zu akti-
- vieren, muß in der Datei
- #define TEST 0
- auf
- #define TEST 1
- umgeändert werden. Für ein weiteres Beispiel siehe die Datei gem.c .
-
- system.c sollte mit jedem C-Compiler funktionieren, der nicht auf Prototypen
- besteht. Ggfs. muß anstelle von osbind.h eine andere Header-Datei einge-
- bunden werden, nämlich die, die die Gemdos-Funktion Super() definiert.
-